Access Control
- Provides the essential services of authorization, identification and authentication, access approval, and accountability
- authorization specifies what a subject can do
- identification and authentication ensure that only legitimate subjects can log on to a system
- access approval grants access during operations, by association of users with the resources that they are allowed to access, based on the authorization policy
- accountability identifies what a subject (or all subjects associated with a user) did
- A reference monitor mediates all access to resources
Referencer Monitor
- Three required properties for reference monitors in “trusted systems”
- Tamper-proof
- non-bypassable (complete mediation)
- small enough to be analyzable
- Multics is a classic system using this model
Mandatory Access Control (MAC)
- Means of assigning access rights based on regulations by a central authority
- Rules are enforced on every attempted access, not at the discretion of any system user
- Authorized processes CANNOT pass along their capabilities to other processes
- Ex. Bell-LaPadula Model
Bell-Lapadula Model
- MAC system
- When is it OK to release information?
- Government / Military applications – security clearances
- Simple Security
- Property – subject at a given security level may not read an object at a higher security level
- *-Property – subject at a given security level may not write to any object at a lower security level
- “read down, write up”
- Secret can create TS but cannot create Open in case something leaked
Biba Integrity Model
- Rules that preserve integrity of information
- Simple Integrity Property – subject at a given level of integrity must not read data at a lower integrity level
- *-Integrity Property – subject at a given level of integrity must not write to data at a higher level of integrity
- “read up, write down”
- Priest writes down but shouldnt need to read lower integrity level
Problems?
- Bell-LaPadula – Confidentiality
- Read down, write up
- Biba – Integrity
- Read up, write down
- Want both confidentiality and integrity
- May use Bell-LaPadula for some classification of personnel and data, Biba for another
- Otherwise, only way to satisfy both models is only allow read and write at same classification
Discretionary Access Control (DAC)
- Means of assigning access rights based on rules specified by users
- Rule enforcement may be waived or modified by some users
- Authorized processes can pass along their capabilities to other processes
- Ex. Unix file mode, which represent write, read, and execute in each of the 3 bits for each of User, Group and Others
Access Control Matrix
- Introduce rules that control what accesses (i.e., actions) subjects may take with respect to objects
Implementation Concepts
- Access control list (ACL)
- Store column of matrix with the resource
- Capabilities
- User holds a “ticket” for each resource
- Two variations
- Store row of matrix with user
- Unforgeable ticket in user space
- Ex: Kerberos
Access Control List
- File 1 – User 1:rwx, User 4:rw
- File 2 – User 1:r, User 2:w, User 3:rw, User 4:x
- File 3 – User 2:rw, User 3:rwx, User 4:rwx
- File 4 – User 1:w, User 2:r, User 3:rw
Capabilities List
- User 1 – File 1:rwx, File 2:r, File 4:w
- User 2 – File 2:w, File 3:rw, File 4:r
- User 3 – File 2:rw, File 3:rwx, File 4:rw
- User 4 – File 1:rw, File 2:x, File 3: rwx
ACL vs Capabilities
- Access control list (user centric – guard at the gate lookup user on list)
- Associate list with each object
- Check user/group against list
- Relies on authentication: need to know user
- Capabilities (process focused – user has a ticket indicating what they can do)
- Capability is unforgeable ticket
- Random bit sequence, or managed by OS
- Can be passed from one process to another
- Reference monitor checks ticket
- Does not need to know identity of user/process
- Capability is unforgeable ticket
Confused Deputy Problem
- Process or program is tricked into performing an operation on an adversary’s behalf that the adversary could not perform on their own
- Ex. write to (read from) a privileged file
- EX: Developer uses a compiler and tells it where to create file – the file can be created on system folders and overwrites system files or files owned by other users. The compiler has elevated privileges and the developer can exploit it.
- Type of privilege escalation
- One solution is to bundle together the designation of an object and the permission to access that object
- This is exactly a capability
- When a user wants to run a program, the user must pass along their capability to the program
Role Based Access Control (RBAC)
- Access rights need to change as the responsibilities of users change
- Associate permissions with job functions
- Each job defines a set of tasks
- The tasks need permissions
- The permissions define a role
- Ex. Bank Teller
- Read/Write to client accounts
- Cannot create new accounts
- Cannot create a loan
- Role defines only the permissions allowed for the job
- Model consists of two relationships
- Role-permission assignments
- User-role assignments
- Assign permissions to roles
- These are largely fixed
- Assign a user to the roles they can assume
- These change with each user
- Administrators must manage this relationship